package com.rc.saas.mini.model.tenant;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.rc.saas.mini.common.base.BaseModel;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * @Description 
 * @Author  
 * @Date: 2022-07-18
 */

@ApiModel(value=" tenant_ticket_type ", description=" 优惠券类型 ")
public class TenantTicketType extends BaseModel{ 

    @ApiModelProperty(value = "ID")
    private Long ticketTypeId;
 
    @ApiModelProperty(value = "运营商")
    private String tenantCode;
 
    @ApiModelProperty(value = "当ticket_type=0时,优惠券适用的计算方式 0整单满减优惠券 1服务费满减优惠卷 2充电满折 3服务器满折 4代金券")
    private String ticketSuitType;
 
    @ApiModelProperty(value = "优惠券来源  0 后台赠送(系统推送) 1主动领取")
    private String ticketSource;
 
    @ApiModelProperty(value = "优惠券类型 0 充电优惠卷 1充值优惠卷")
    private String ticketType;
 
    @ApiModelProperty(value = "优惠券名称")
    private String ticketName;
 
    @ApiModelProperty(value = "获取条件需求满足金额(gain_require)")
    private BigDecimal gainRequireAmount;
 
    @ApiModelProperty(value = "生效方式 0指定N天有效 1指定日期生效 默认0 ")
    private String effectType;
 
    @ApiModelProperty(value = "当effect_type=0时，优惠券有效期（天）,从获取时间开始计算")
    private Integer effectDay;
 
    @ApiModelProperty(value = "当effect_type=1时，指定有效开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date effectStartDate;
 
    @ApiModelProperty(value = "当effect_type=1时，指定有效结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date effectEndDate;
 
    @ApiModelProperty(value = "优惠类型,0立减 1打折 默认0")
    private String discountType;
 
    @ApiModelProperty(value = "当discount_type=0时，优惠金额")
    private BigDecimal discountAmount;
 
    @ApiModelProperty(value = "当discount_type=1时，折扣率 0-1")
    private BigDecimal discount;
 
    @ApiModelProperty(value = "适用消费金额(use_require)")
    private BigDecimal useRequireAmount;
 
    @ApiModelProperty(value = "优惠金额(refund)")
    private BigDecimal reducedAmount;
 
    @ApiModelProperty(value = "每个用户发送优惠券数量（张）")
    private Integer ticketUnitCount;
 
    @ApiModelProperty(value = "优惠券面值（face_value）")
    private BigDecimal ticketUnitPrice;
 
    @ApiModelProperty(value = "发放总数量（张）")
    private Integer totalTicket;
 
    @ApiModelProperty(value = "剩余总数量 （张）")
    private Integer remainTicket;
 
    @ApiModelProperty(value = "优惠券总量是否为无限制 0 否 1 是 默认为 0")
    private String isMax;
 
    @ApiModelProperty(value = "退还方式, 0不可退还 1下单取消可退还 默认0")
    private String refundType;
 
    @ApiModelProperty(value = "优惠卷图片")
    private String ticketImg1;
 
    @ApiModelProperty(value = "备注")
    private String remark;
 
    @ApiModelProperty(value = "状态 (0开启使用 1停止) 默认0")
    private String status;
 
    @ApiModelProperty(value = "null")
    private String createdBy;
 
    @ApiModelProperty(value = "null")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;
 
    @ApiModelProperty(value = "null")
    private String lastUpdatedBy;
 
    @ApiModelProperty(value = "null")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastUpdatedTime;
 
    @ApiModelProperty(value = "使用人群(0全部用户 1新用户 9等级会员 10企业用户)")
    private String applianceUser;
 
    @ApiModelProperty(value = "当appliance_user=9可用，等级ID")
    private String applicnceLevel;
 
    @ApiModelProperty(value = "发放时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date sendDate;
 
    @ApiModelProperty(value = "是否独占(不能和其他优惠券同时使用 0否 1是)")
    private String ticketExclusivity;
 
    public Long getTicketTypeId() {
        return ticketTypeId;
    }

    public void setTicketTypeId(Long ticketTypeId) {
        this.ticketTypeId = ticketTypeId;
    }

    public String getTenantCode() {
        return tenantCode;
    }

    public void setTenantCode(String tenantCode) {
        this.tenantCode = tenantCode;
    }

    public String getTicketSuitType() {
        return ticketSuitType;
    }

    public void setTicketSuitType(String ticketSuitType) {
        this.ticketSuitType = ticketSuitType;
    }

    public String getTicketSource() {
        return ticketSource;
    }

    public void setTicketSource(String ticketSource) {
        this.ticketSource = ticketSource;
    }

    public String getTicketType() {
        return ticketType;
    }

    public void setTicketType(String ticketType) {
        this.ticketType = ticketType;
    }

    public String getTicketName() {
        return ticketName;
    }

    public void setTicketName(String ticketName) {
        this.ticketName = ticketName;
    }

    public BigDecimal getGainRequireAmount() {
        return gainRequireAmount;
    }

    public void setGainRequireAmount(BigDecimal gainRequireAmount) {
        this.gainRequireAmount = gainRequireAmount;
    }

    public String getEffectType() {
        return effectType;
    }

    public void setEffectType(String effectType) {
        this.effectType = effectType;
    }

    public Integer getEffectDay() {
        return effectDay;
    }

    public void setEffectDay(Integer effectDay) {
        this.effectDay = effectDay;
    }

    public Date getEffectStartDate() {
        return effectStartDate;
    }

    public void setEffectStartDate(Date effectStartDate) {
        this.effectStartDate = effectStartDate;
    }

    public Date getEffectEndDate() {
        return effectEndDate;
    }

    public void setEffectEndDate(Date effectEndDate) {
        this.effectEndDate = effectEndDate;
    }

    public String getDiscountType() {
        return discountType;
    }

    public void setDiscountType(String discountType) {
        this.discountType = discountType;
    }

    public BigDecimal getDiscountAmount() {
        return discountAmount;
    }

    public void setDiscountAmount(BigDecimal discountAmount) {
        this.discountAmount = discountAmount;
    }

    public BigDecimal getDiscount() {
        return discount;
    }

    public void setDiscount(BigDecimal discount) {
        this.discount = discount;
    }

    public BigDecimal getUseRequireAmount() {
        return useRequireAmount;
    }

    public void setUseRequireAmount(BigDecimal useRequireAmount) {
        this.useRequireAmount = useRequireAmount;
    }

    public BigDecimal getReducedAmount() {
        return reducedAmount;
    }

    public void setReducedAmount(BigDecimal reducedAmount) {
        this.reducedAmount = reducedAmount;
    }

    public Integer getTicketUnitCount() {
        return ticketUnitCount;
    }

    public void setTicketUnitCount(Integer ticketUnitCount) {
        this.ticketUnitCount = ticketUnitCount;
    }

    public BigDecimal getTicketUnitPrice() {
        return ticketUnitPrice;
    }

    public void setTicketUnitPrice(BigDecimal ticketUnitPrice) {
        this.ticketUnitPrice = ticketUnitPrice;
    }

    public Integer getTotalTicket() {
        return totalTicket;
    }

    public void setTotalTicket(Integer totalTicket) {
        this.totalTicket = totalTicket;
    }

    public Integer getRemainTicket() {
        return remainTicket;
    }

    public void setRemainTicket(Integer remainTicket) {
        this.remainTicket = remainTicket;
    }

    public String getIsMax() {
        return isMax;
    }

    public void setIsMax(String isMax) {
        this.isMax = isMax;
    }

    public String getRefundType() {
        return refundType;
    }

    public void setRefundType(String refundType) {
        this.refundType = refundType;
    }

    public String getTicketImg1() {
        return ticketImg1;
    }

    public void setTicketImg1(String ticketImg1) {
        this.ticketImg1 = ticketImg1;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public String getLastUpdatedBy() {
        return lastUpdatedBy;
    }

    public void setLastUpdatedBy(String lastUpdatedBy) {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public Date getLastUpdatedTime() {
        return lastUpdatedTime;
    }

    public void setLastUpdatedTime(Date lastUpdatedTime) {
        this.lastUpdatedTime = lastUpdatedTime;
    }

    public String getApplianceUser() {
        return applianceUser;
    }

    public void setApplianceUser(String applianceUser) {
        this.applianceUser = applianceUser;
    }

    public String getApplicnceLevel() {
        return applicnceLevel;
    }

    public void setApplicnceLevel(String applicnceLevel) {
        this.applicnceLevel = applicnceLevel;
    }

    public Date getSendDate() {
        return sendDate;
    }

    public void setSendDate(Date sendDate) {
        this.sendDate = sendDate;
    }

    public String getTicketExclusivity() {
        return ticketExclusivity;
    }

    public void setTicketExclusivity(String ticketExclusivity) {
        this.ticketExclusivity = ticketExclusivity;
    }

}
